package model.ability;

import model.map.GameMap;

/**
 * Defines factories for creating different types of ability handlers.
 * @author Zachary
 */
public class HandlerFactory {
	private static GameMap map = null;
	
	/**
	 * Constructor for HandlerFactory.
	 * @param map
	 */
	public HandlerFactory(GameMap gameMap){
		map = gameMap;
	}
	
	/**
	 * Changes the current gamemap.
	 * @param gameMap
	 */
	public static void changeMap(GameMap gameMap){
		map = gameMap;
	}
	
	/**
	 * Makes a StraightAheadAbilityHandler.
	 */
	public static StraightAheadAbilityHandler createStraightAheadAbilityHandler(){
		return new StraightAheadAbilityHandler(map);
	}
	
	/**
	 * Makes a RangedAbilityHandler.
	 */
	public static RangedAbilityHandler createRangedAbilityHandler(){
		return new RangedAbilityHandler(map);
	}
}
